Buy me a DrinkEther Coffee (5$)

Chaos Engineering Exploration: First Phase of Development

Published on:

2024-04-28

#ChaosEngineering #SoftwareReliability #WebDevelopment #Django #vuejs #agile-development #scrum-methodology #resilience

1. User Management

texth3imageh3texttablenotice

The User Management feature encompasses the creation, verification ad update of the user accounts. The feature is implemented using a Django RESTful Framework and VueJs (Vuetify 3) for the frontend.

Frontend UIs for the User Management Feature

image

Backend APIs for the User Management Feature

The following table documents the endpoints of the back-end API that are relevent to the User Management feature.
EndpointMethodDescription
/api/registerPOSTSends client specific data for the creation of a new user. Invokes other back-end functions such as hashing the password, sending a verification Email.
/api/loginPOSTSends client specific data for the login of an existing user.
/api/verifyEmail/<uidb64>/<token>GETVerifies the email of an existing user.
/api/get_notificationsGETFetches the notifications relevant to the currently logged in user.
/api/mark_notification_as_viewedGETMarks a notification as viewed removing it from the list of notifications.
/api/get_user_detailsGETFetches the details of the currently logged in user.
/api/get_profile_picGETFetches the profile picture of the currently logged in user.
/api/change_passwordPOSTChanges the password of the currently logged in user.
/api/change_profile_picPOSTChanges the profile picture of the currently logged in user.
/api/edit_session_timerPOSTChanges the session timer of the currently logged in user.
/api/logoutPOSTLogs out the currently logged in user.

PS: Browsers don’t seem to know that the frontend and backend are on the same domain (which is understandable since they are different applications), so you will need to add the domain of the frontend to the CORS_Allowed_Origins in the Django RESTful API settings.

2. Secret Management

texth3imageh3texttable

The User Management feature encompasses the creation, verification ad update of the user accounts. The feature is implemented using a Django RESTful Framework and VueJs (Vuetify 3) for the frontend.

Frontend UIs for the Secret Management Feature

image

Backend APIs for the Secret Management Feature

The following table documents the endpoints of the back-end API that are relevent to the Secret Management feature.
EndpointMethodDescription
/api/add_secretPOSTReceives two parameters (Name & Content) to create a new instance of the class secret.
/api/list_secretsGETFetches all the secrets owned by the current user.
/api/share_secretPOSTCreates a share object for a specific user with optional expiration parameters.
/api/revoke_secretPOSTDeletes a share object for a specific user.
/api/display_secretGETRequests the plain content of a secret, invoking functionalities such as Decryption via RSA Keys and Decryption via AES Keys.
/api/delete_secretPOSTDeletes a secret along with all the shares that have been created from it (revoking all access to it).
/api/list_shared_secretsGETFetches all the secrets shared with the current user.
/api/display_shared_secretGETRequests the plain content of a secret, ...
/api/remove_access_to_secretPOSTDeletes the share object that provides the current user with access to the secret.
/api/get_user_eventlogsGETFetches all the event logs/activities that have been done on secrets relevant to the current user.

3. What's Next?

text

Now that we have the plans ready, we will be delving into developing the User Management and Secret Management Features. You can read about them in here.